#ifndef _OD_SIP_HANDLE_EVENT_H_
#define _OD_SIP_HANDLE_EVENT_H_

#ifdef __cplusplus
    extern "C" {
#endif

#include "eXosip2/eXosip2.h" 
#include "pipeline.h"


typedef enum
{
    OD_SIP_HANDLE_EVENT_REQUEST_STATUS = 0,
    OD_SIP_HANDLE_EVENT_USERNAME,
    OD_SIP_HANDLE_EVENT_BYE_FLG,
    OD_SIP_HANDLE_EVENT_NUM
}od_sip_handle_event_def;


typedef struct
{
    const char *task_name;
    void **h_state_machine;         /**< handle of state machine pthread*/
    int group_id;
}od_sip_handle_event_static_params;


typedef struct
{
    int  request_status;  /**< 0:空闲, 1:被叫通话中*/
    char username[32];    /**< 来电号码*/
    int  bye_flg;         /**< 通话时设置此参数为 1，任务会发一个BYE信令出去结束通话*/
}od_sip_handle_event_dynamic_params;


typedef void* od_sip_handle_event_handle;

extern const od_sip_handle_event_dynamic_params glb_sip_handle_event_dynamic_params_default;

od_sip_handle_event_handle od_sip_handle_event_create(od_sip_handle_event_static_params *static_params,
                                                         od_sip_handle_event_dynamic_params *dynamic_params);

#ifdef __cplusplus
    }
#endif

#endif

/*_*/
